package com.zatech.cgnci.project.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 分入分出信息表
 * </p>
 *
 * @author Generator
 * @since 2024-12-17
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("cgnci_reinsurance_info")
@ApiModel(value = "CgnciReinsuranceInfoDO对象", description = "分入分出信息表")
public class CgnciReinsuranceInfoDO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("再保ID")
    @TableId(value = "reinsurance_id", type = IdType.ASSIGN_ID)
    private Long reinsuranceId;

    @ApiModelProperty("业务ID")
    private Long businessId;

    @ApiModelProperty("类型(1-分入,2-合约分出,3-临分分出),码表值:divideType")
    private String reinsuranceType;

    @ApiModelProperty("方式(1-比例,2-非比例),码表值:proportionalMode")
    private String reinsuranceMethod;

    @ApiModelProperty("再保经纪人")
    private String broker;

    @ApiModelProperty("具体业务类型(1-成数,2-溢额,3-成数溢额混合,4-累计损失超赔,5-险位超赔,6-巨灾超赔),码表值:contractType")
    private String businessType;

    @ApiModelProperty("分出价格确认(1-按分入净保费,2-按再保人定价),码表值:priceConfirmationType")
    private String priceConfirmationType;

    @ApiModelProperty("价格确认方式说明")
    private String priceConfirmation;

    @ApiModelProperty("总再保手续费率")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal totalBrokerCommissionRate;

    @ApiModelProperty("总再保经纪费")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal totalBrokerFee;

    @ApiModelProperty("总手续费率")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal totalCommissionRate;

    @ApiModelProperty("总手续费")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal totalCommission;

    @ApiModelProperty("总毛保费")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal totalGrossPremium;

    @ApiModelProperty("总净保费")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal totalNetPremium;

    @ApiModelProperty("再保经纪费率")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal brokerFeeRate;

    @ApiModelProperty("分保手续费率")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal procedureRate;

    @ApiModelProperty("合约编号")
    private String contractNo;

    @ApiModelProperty("合约名称")
    private String contractName;

    @ApiModelProperty("累计赔偿限额(非比例)")
    private BigDecimal aggregateLimit;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("创建人")
    private String createUser;

    @ApiModelProperty("更新时间")
    @TableField(update = "now()")
    private Date updateTime;

    @ApiModelProperty("更新人")
    private String updateUser;


}
